/**
 * @file teacherAI.js
 * @description 教师端AI助教相关接口
 * @created 2024-06-21
 */

import request from '@/utils/request'

// 教师AI助教相关API
export const teacherAIAPI = {
  /**
   * 获取教师创建的AI助手列表
   * @returns {Promise} 返回AI助手列表
   */
  getAIAssistants() {
    return request.get('/teacher/ai/assistants')
  },

  /**
   * 获取AI助手详情
   * @param {string} assistantId - AI助手ID
   * @returns {Promise} 返回AI助手详情
   */
  getAIAssistantDetail(assistantId) {
    return request.get(`/teacher/ai/assistants/${assistantId}`)
  },

  /**
   * 创建新的AI助手
   * @param {Object} assistantData - AI助手数据
   * @param {string} assistantData.name - 助手名称
   * @param {string} assistantData.description - 助手描述
   * @param {string} assistantData.subject - 知识领域
   * @param {Array} assistantData.courseIds - 关联课程ID列表
   * @param {string} assistantData.customInstructions - 个性化指令
   * @returns {Promise} 创建结果
   */
  createAIAssistant(assistantData) {
    return request.post('/teacher/ai/assistants', assistantData)
  },

  /**
   * 更新AI助手信息
   * @param {string} assistantId - AI助手ID
   * @param {Object} assistantData - 更新的AI助手数据
   * @returns {Promise} 更新结果
   */
  updateAIAssistant(assistantId, assistantData) {
    return request.put(`/teacher/ai/assistants/${assistantId}`, assistantData)
  },

  /**
   * 删除AI助手
   * @param {string} assistantId - AI助手ID
   * @returns {Promise} 删除结果
   */
  deleteAIAssistant(assistantId) {
    return request.delete(`/teacher/ai/assistants/${assistantId}`)
  },

  /**
   * 与AI助手对话
   * @param {string} assistantId - AI助手ID
   * @param {Object} messageData - 消息数据
   * @param {string} messageData.question - 提问内容
   * @returns {Promise} 返回AI回复
   */
  askAIAssistant(assistantId, messageData) {
    return request.post(`/teacher/ai/assistants/${assistantId}/ask`, messageData)
  },

  /**
   * 获取AI助手交互历史记录
   * @param {string} assistantId - AI助手ID
   * @param {Object} params - 查询参数
   * @param {number} params.page - 页码
   * @param {number} params.pageSize - 每页条数
   * @returns {Promise} 返回历史记录
   */
  getAIAssistantHistory(assistantId, params = {}) {
    return request.get(`/teacher/ai/assistants/${assistantId}/history`, { params })
  },

  /**
   * 获取AI助手使用分析数据
   * @param {string} assistantId - AI助手ID
   * @param {Object} params - 查询参数
   * @param {string} params.timeRange - 时间范围，如last7days, last30days
   * @returns {Promise} 返回使用分析数据
   */
  getAIAssistantAnalytics(assistantId, params = {}) {
    return request.get(`/teacher/ai/assistants/${assistantId}/analytics`, { params })
  },

  /**
   * 批量导入问答对到AI助手
   * @param {string} assistantId - AI助手ID
   * @param {Array} qaData - 问答对数据
   * @returns {Promise} 导入结果
   */
  importQAData(assistantId, qaData) {
    return request.post(`/teacher/ai/assistants/${assistantId}/import-qa`, qaData)
  },

  /**
   * 导出AI助手问答数据
   * @param {string} assistantId - AI助手ID
   * @returns {Promise} 导出结果
   */
  exportQAData(assistantId) {
    return request.get(`/teacher/ai/assistants/${assistantId}/export-qa`)
  },
  
  /**
   * 获取AI助手培训状态
   * @param {string} assistantId - AI助手ID
   * @returns {Promise} 培训状态
   */
  getTrainingStatus(assistantId) {
    return request.get(`/teacher/ai/assistants/${assistantId}/training-status`)
  },
  
  /**
   * 启动AI助手培训
   * @param {string} assistantId - AI助手ID
   * @param {Object} trainingData - 培训参数
   * @returns {Promise} 启动结果
   */
  startTraining(assistantId, trainingData) {
    return request.post(`/teacher/ai/assistants/${assistantId}/train`, trainingData)
  }
}

export default teacherAIAPI 